
def hold_retrieve_1():
  """ SiebelAg1 call to SiebelAg2,  SiebelAg2 hold, SiebelAg2 internal  call to SiebelAg3, rel. SiebelAg2, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()

def hold_retrieve_2():
  """ Inbound call to SiebelAg1,  SiebelAg1 hold, SiebelAg1 internal  call to SiebelAg2, rel. SiebelAg1, SiebelAg1 retrieve, rel.ExtDn"""
  Ext1SiebelAg1.MakeCall(DN1)
  SiebelAg1.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg1.ReleaseCall()

def hold_retrieve_3():
  """ Outbound call SiebelAg1 to ExtDN,  SiebelAg1 hold, SiebelAg1 intern. call to SiebelAg2, rel. SiebelAg1, SiebelAg1 retrieve, rel.ExtDn"""
  SiebelAg1.MakeCall(Ext1DN2)
  Ext1SiebelAg2.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg2.ReleaseCall()

def hold_retrieve_4():
  """ SiebelAg1 call to SiebelAg2,  SiebelAg2 hold, SiebelAg2 outbound call , rel. SiebelAg2, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(Ext1DN2)
  Ext1SiebelAg2.AnswerCall()
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()
  

def hold_retrieve_5():
  """ Inbound call to SiebelAg1,  SiebelAg1 hold, SiebelAg1 outbound  call,SiebelAg1 retrieve, rel.ExtDn"""
  Ext1SiebelAg1.MakeCall(DN1)
  SiebelAg1.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(Ext1DN2)
  Ext1SiebelAg2.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg1.ReleaseCall()

def hold_retrieve_6():
  """ SiebelAg1 call to SiebelAg2,  SiebelAg2 hold, SiebelAg2 unsuccesful intern. call to SiebelAg3, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(DN3)
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()

def hold_retrieve_7():
  """ Inbound call to SiebelAg1,  SiebelAg1 hold,  SiebelAg1 unsuccesful intern. call to SiebelAg2, SiebelAg1 retrieve, rel.ExtDn"""
  Ext1SiebelAg1.MakeCall(DN1)
  SiebelAg1.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN2)
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg1.ReleaseCall()

def hold_retrieve_8():
  """ Outbound call SiebelAg1 to ExtDN,  SiebelAg1 hold, SiebelAg1 unsuccesful intern. call,SiebelAg1 retrieve, rel.ExtDn"""
  SiebelAg1.MakeCall(Ext1DN2)
  Ext1SiebelAg2.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN2)
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg2.ReleaseCall()

def hold_retrieve_9():
  """ SiebelAg1 call to SiebelAg2,  SiebelAg2 hold, SiebelAg2 unsuccesful outbound call, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(DN2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(Ext1DN2)
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()

def hold_retrieve_10():
  """ Inbound call to SiebelAg1,  SiebelAg1 hold,SiebelAg1 unsuccesful outbound call,SiebelAg1 retrieve, rel.ExtDn"""
  Ext1SiebelAg1.MakeCall(DN1)
  SiebelAg1.AnswerCall()
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(Ext1DN2)
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  Ext1SiebelAg1.ReleaseCall()

def hold_retrieve_11():
  """ SiebelAg1 call to ACD2, SiebelAg2 hold, SiebelAg2 internal call to SiebelAg3, rel. SiebelAg2, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(ACD2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()

def hold_retrieve_12():
  """ Inbound call to ACD2, SiebelAg2 hold, SiebelAg2 intern.  call to SiebelAg3, rel. SiebelAg2, SiebelAg2 retrieve, rel.ExtDn"""
  Ext1SiebelAg1.MakeCall(ACD2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  Ext1SiebelAg1.ReleaseCall()

def hold_retrieve_13():
  """ SiebelAg1 call to ACD2, SiebelAg2 hold, SiebelAg2 outbound  call , rel. SiebelAg2, SiebelAg2 retrieve, rel. SiebelAg1"""
  SiebelAg1.MakeCall(ACD2)
  SiebelAg2.AnswerCall()
  SiebelAg2.HoldCall()
  SiebelAg2.MakeCall(Ext1DN2)
  Ext1SiebelAg2.AnswerCall()
  SiebelAg2.ReleaseCall()
  SiebelAg2.RetrieveCall()
  SiebelAg1.ReleaseCall()

def hold_retrieve_14():
  """Internal call, originator hold"""
  SiebelAg1.MakeCall(DN2)
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg2.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg2.ReleaseCall()

  
def hold_retrieve_15():
  SiebelAg1.MakeCall(DN2)
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg2.AnswerCall()
  SiebelAg1.RetrieveCall()
  SiebelAg2.ReleaseCall()

def hold_retrieve_16():
  SiebelAg1.MakeCall(DN2)
  SiebelAg1.HoldCall()
  SiebelAg1.MakeCall(DN3)
  SiebelAg3.AnswerCall()
  SiebelAg1.ReleaseCall()
  SiebelAg1.RetrieveCall()
  SiebelAg2.AnswerCall()
  SiebelAg2.ReleaseCall()




